<?php
/*
 * jQuery File Upload Plugin PHP Example 5.7
 * https://github.com/blueimp/jQuery-File-Upload
 *
 * Copyright 2010, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * http://www.opensource.org/licenses/MIT
 */

error_reporting(E_ALL | E_STRICT);

//подключаем обработку исключений
include_once('core/exeptions.php');
//подключаем набор функций
include_once('core/functions.php');
//устанавливаем обработчик для програмных ощибок
set_error_handler('errorHandler',E_ALL);
//режим ядра
$core_mode='imageUploader';
//загружаем основу
import('core.core');
//подключаем настройки
import('core.config');
//устанавливаем домен для сессий
ini_set('session.cookie_domain',Config::_('info_domain'));
//собираем ядро
Core::load(array(
    'core.vars+',                                   //глобальные переменные
    'core.file_lite',                               //модуль работы с файлами
    'core.db.mysql',                                //класс базы данных mysql
    'core.model',                                   //базовый класс модели
    'core.session',                                 //класс сессий хранимых в базе
    'core.t',                                       //локализация
    'core.lib.jquery_file_uploader.upload_class',   //библиотека загрузчика картинок
    'core.lib.jquery_file_uploader.upload'          //библиотека управления картинками
));

//проверяем передали пакет или одиночный запрос
$pack =  Request::getVar('pack',false);
//устанавливаем формат данных по умолчанию json
Vars::_(Router::VIEW_TYPE,'json');
//ссылка на БД
$db=Core::getDB();
$views = import('core.view.'.Vars::_(Router::VIEW_TYPE),true);
//определяем язык
Core::setLang();

//предварительные сервистные функции
Core::preService();
$upload_handler = new UploadImage();

header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Content-Disposition: inline; filename="files.json"');
header('X-Content-Type-Options: nosniff');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: OPTIONS, HEAD, GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: X-File-Name, X-File-Type, X-File-Size');

switch ($_SERVER['REQUEST_METHOD']) {
    case 'OPTIONS':
        break;
    case 'HEAD':
    case 'GET':
        $upload_handler->get();
        break;
    case 'POST':
        if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') {
            $upload_handler->preDelete();
        } else {
            $upload_handler->post();
        }
        break;
    case 'DELETE':
        $upload_handler->preDelete();
        break;
    default:
        header('HTTP/1.1 405 Method Not Allowed');
}
//закрываем базу
$db->close();
Core::pastService();
//закончиваем сессию
session_commit();
